package org.example.microservice.basedata.model.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 建表语句：
 * CREATE TABLE `bd_vehicle` (
 *   `id` bigint(20) NOT NULL COMMENT '车辆id',
 *   `license_plate_number` varchar(32) DEFAULT NULL COMMENT '车牌号',
 *   `state` smallint(6) DEFAULT '1' COMMENT '车辆状态：1-正常使用 2-调拨中 3-维修中 4-封存中 5-已报废',
 *   `belong_department` varchar(60) DEFAULT NULL COMMENT '所属单位',
 *   `registration_date` date DEFAULT NULL COMMENT '注册日期',
 *   `volume` decimal(10,2) DEFAULT NULL COMMENT '容积',
 *   `create_user` varchar(32) DEFAULT NULL COMMENT '创建人',
 *   `create_time` datetime DEFAULT NULL COMMENT '创建时间',
 *   PRIMARY KEY (`id`)
 * ) COMMENT='车辆信息表';
 */
@Data
@TableName("bd_vehicle")
@ApiModel(value = "Vehicle对象", description = "基础数据-车辆信息表")
public class Vehicle implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("车辆id")
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    @ApiModelProperty("车牌号")
    @TableField("license_plate_number")
    private String licensePlateNumber;

    @ApiModelProperty("车辆状态：1-正常使用 2-调拨中 3-维修中 4-封存中 5-已报废")
    @TableField("state")
    private Integer state;

    @ApiModelProperty("使用单位")
    @TableField("belong_department")
    private String belongDepartment;

    @ApiModelProperty("注册日期")
    @TableField("registration_date")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date registrationDate;

    @ApiModelProperty("容积")
    @TableField("volume")
    private BigDecimal volume;

    @ApiModelProperty("创建人")
    @TableField("create_user")
    private String createUser;

    @ApiModelProperty("创建时间")
    @TableField("create_time")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
}
